package program;

/**
 * @author Daniel Bollinger
 */

public class Input {
	
	// Klassenvariablen definieren (Zugriff durch Programmlogik)
	private int lines;
	private String path;
	private String[] code;
	private String[][] formatted_code;
	private int[][] command;

	/**
	 * Setzen der Zeilenanzahl
	 * @param line
	 */
	void set_lines(int lines){
		
		this.lines = lines;
		return;
	}
	
	/**
	 * Abrufen der Zeilenanzahl
	 * @return Zeilenanzahl
	 */
	int get_lines(){
		
		return this.lines;
	}
	
	/**
	 * Setzen des Pfades
	 * @param path
	 */
	void set_path(String path){
		
		this.path = path;
		return;
	}
	
	/**
	 * Abrufen des Pfades
	 * @return Pfad der Input-Datei
	 */
	String get_path(){
		
		return this.path;
	}
	
	
	/**
	 * Setzen von einer Zeile Code anhand der Zeilennummer
	 * @param code
	 * @param row (echte Zeilennummer, erste Zeile nicht 0)
	 */
	void set_code_lines(String code, int row){
		
		this.code[row] = code;
		return;
	}
	
	/**
	 * Setzen von komplettem Code
	 * @param code
	 */
	void set_code_complete(String[] code){
		
		this.code = code;
	}
	
	/**
	 * Abrufen von Code anhand von Zeilennummer
	 * @param row
	 * @return Code der angegebenen Zeile
	 */
	String get_code(int row){
		
		return this.code[row];
	}
	
	/**
	 * Abrufen von komplettem Code
	 * @return
	 */
	String[] get_code_complete(){
		
		return this.code;
	}
	/**
	 * Setzen von formattiertem Code anhand von Zeilen und Spaltennummer
	 * @param code
	 * @param row
	 * @param coloum
	 */
	void set_formatted_code(String code, int row, int coloum){
		
		this.formatted_code[row][coloum] = code;
		return;
	}
	
	/**
	 * Setzen von komplettem formattierten Code
	 * @param code
	 */
	void set_formatted_code_complete(String[][] code){
		
		this.formatted_code = code;
		return;
	}
	
	/**
	 * Abrufen von formattierten Code anhand Zeilen und Spaltennummer
	 * @param row
	 * @param coloum
	 * @return
	 */
	String get_formatted_code(int row, int coloum){
		
		return this.formatted_code[row][coloum];
	}
	
	/**
	 * Abrufen von gesamten formattierten Code
	 * @return
	 */
	String[][] get_formatted_code_complete(){
		
		return this.formatted_code;
	}
	
	/**
	 * Setzen von "int"-formattiertem Command anhand Zeilen und Spaltennummer
	 * @param comm
	 * @param row
	 */
	void set_command(int comm, int row, int coloum){
		
		this.command[row][coloum] = comm;
		return;
	}
	
	/**
	 * Setzen von komplettem "int"-formattiertem Command
	 * @param comm
	 */
	void set_command_complete(int[][] comm){
		
		this.command = comm;
		return;
	}
	
	/**
	 * Abrufen von "int"-formattiertem Command anhand von Zeilen und Spaltennummer
	 * @param row
	 * @return
	 */
	int get_command(int row, int coloum){
		
		return this.command[row][coloum];
	}
	
	/**
	 * Abrufen von komplettem "int"-formattiertem Command
	 * @return
	 */
	int[][] get_command_complete(){
		
		return this.command;
	}
}
